package main

import "fmt"

func main() {
	var MyName int // 变量声明
	fmt.Println(MyName) // 打印变量

	var a int = 8
	fmt.Println(a)

	var b = a // 自动推断b的类型

	c := b // : 相当于声明 var
	a = c // 第二次不能声明

	var (
		d uint16
		e int8
		f float32
		g float64
	)

	a = -5
	d = 05 // 八进制
	a = 0o57 // 八进制
	a = 0x57 // 十六进制

	a = 5_0_123_789 // 数字分隔符，_无意义，只是为了方便阅读
	
	f = 1.432
	g = 34

	m := 34. // 自动推断为float64
	var n bool = true // 默认值为false

	_,_,_,_ = d,e,f, m

	fmt.Printf("a=%d, g=%f, n=%t\n", a, g, n) // 打印变量, %d 整数, %f 浮点数, %t 布尔值
	fmt.Printf("f=%g, f=%e\n", f, f) // %g 浮点数，%e 科学计数法

	fmt.Printf("f=%[1]f, g=%[2]f, g=%[2]g, f=%[1]e\n", f, g) // 打印变量，[1] 表示第一个参数，[2] 表示第二个参数
	
}